System and Method for Capturing an Event in MEMS Inertial Sensors

ABSTRACT

A method of capturing an event in a MEMS accelerometer stores acceleration data in memory, detects a trigger event based on the acceleration data, and modifies a configuration of the memory so that a specified amount of the acceleration data is saved. A MEMS event capturing system includes an inertial sensor having sensor circuitry and event capturing circuitry implemented with the sensor circuitry. The event capturing circuitry includes memory capable of storing acceleration data received from the inertial sensor and a detection module operatively coupled with the memory that detects a trigger event. The event capturing circuitry also includes a management module operatively coupled with the memory and the detection module that modifies the memory&#39;s storage configuration when the trigger event is detected.

CROSS-REFERENCE TO RELATED APPLICATIONS

This patent application claims priority to U.S. Provisional Patent Application No. 61/038,594 filed Mar. 21, 2008, entitled ACTIVITY DETECTION IN MEMS ACCELEROMETERS, U.S. Provisional Patent Application No. 61/049,590 filed May 1, 2008, entitled MANAGEMENT SYSTEM AND METHOD FOR MEMS INERTIAL SENSORS, and U.S. Provisional Patent Application No. 61/078,923 filed Jul. 8, 2008, entitled SYSTEM AND METHOD FOR CAPTURING AN EVENT IN MEMS INERTIAL SENSORS, each disclosure of which is incorporated by reference herein in its entirety.

This patent application is also related to U.S. patent application entitled ACTIVITY DETECTION IN MEMS ACCELEROMETERS having Attorney Docket Number 2550/C35 and U.S. patent application entitled MANAGEMENT SYSTEM FOR MEMS INERTIAL SENSORS having Attorney Docket Number 2550/C38, which are filed on the same day as the present application, each disclosure of which is incorporated by reference herein in its entirety.

FIELD OF THE INVENTION

The invention generally relates to MEMS inertial sensors and, more particularly, the invention relates to capturing an event in MEMS inertial sensors.

BACKGROUND OF THE INVENTION

A variety of different applications use sensor systems to detect the movement of an underlying object. Sensors employing microelectromechanical systems (MEMS) devices are increasingly used in such applications due to their relatively small size and their capability to detect relatively small changes in the measured item. MEMS inertial sensor devices, e.g., accelerometers or gyroscopes, typically employ a movable, inertial mass formed with one or more fixed, non-moving structures. For example, in a MEMS accelerometer, the inertial mass may be suspended in a plane above a substrate and movable with respect to the substrate. The movable structure and the fixed structures form a capacitor having a capacitance that changes when the movable structure moves relative to the fixed structures in response to applied forces, such as along a predetermined axis of the device, e.g., x-, y- and z-axes.

Currently, among other things, inertial sensors may be used for monitoring the interaction of users with electronic devices, such as gaming devices, cell phones, personal digital assistants, etc. One or more inertial sensors in the devices may sense a movement above a particular threshold or a change in orientation. The sensors usually cooperate with a central computer or microprocessor that both coordinates their function and responds to specific types of detected movement.

Typically, the microprocessor or controller periodically or continuously monitors the acceleration data from the inertial sensor to determine a state or condition of the device. Upon detection of a specific type of movement, the microprocessor may cause systems within the device to respond in a specified manner. For example, if the sensor(s) sense a tap by the user (e.g., similar to a mouse click), the device's microprocessor may then initiate a response, such as turning on the device. In this scenario, however, the microprocessor may not capture important motion data. For example, data collected right before and after the trigger event oftentimes may be useful, but may not be fully captured. For instance, a user may pick up and move a device in a selected manner. The microprocessor may detect the movement in one second and then instruct the device to start saving data, causing an even further delay. In this case, the device may not capture the first second of motion plus any delay in receiving the instructions. In certain instances, such as gesture recognition, this valuable information may be lost.

SUMMARY OF THE INVENTION

In accordance with one embodiment of the invention, a method of capturing an event in a MEMS accelerometer stores acceleration data in memory, detects a trigger event based on the acceleration data, and modifies a configuration of the memory so that a specified amount of the acceleration data is saved.

In accordance with another embodiment of the invention, a MEMS event capturing system includes an inertial sensor having sensor circuitry and event capturing circuitry implemented with the sensor circuitry. The event capturing circuitry includes memory capable of storing acceleration data received from the inertial sensor and a detection module operatively coupled with the memory that detects a trigger event. The event capturing circuitry further includes a management module operatively coupled with the memory and the detection module that modifies the memory's storage configuration when the trigger event is detected.

In some embodiments, the specified amount of acceleration data may be stored before the detected trigger event. The method may further include processing the specified amount of the acceleration data in order to recognize the event. The event may be a gesture. In the system or method, modifying a configuration of the memory may include varying an amount of the acceleration data stored. Alternatively, or in addition, modifying a configuration of the memory may include modifying the configuration from a stream buffer to a first-in-first-out buffer. In the system or method, detecting a trigger event may also include capturing an acceleration bias, measuring acceleration at a predetermined period of time, calculating a change in acceleration using the measured acceleration and the acceleration bias, and comparing the change in acceleration to a threshold to detect the trigger event. The system may further include a microprocessor operatively coupled with the event capturing circuitry. The microprocessor may be capable of processing the acceleration data in order to recognize an event, which may be a gesture. In the system or method, the inertial sensor may be formed on a die, and the sensor circuitry and event capturing circuitry may be formed on or in the same die. The sensor circuitry and event capturing circuitry may be formed on or in a first die, and the inertial sensor may be formed on or in another die that is in communication with the first die. The inertial sensor may be an accelerometer or a gyroscope. The memory may be capable of storing a fixed amount or a variable amount of acceleration data received from the inertial sensor.

Illustrative embodiments of the invention may be implemented as a computer program product having a computer usable medium with computer readable program code thereon. The computer readable code may be read and utilized by a computer system in accordance with conventional processes.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and advantages of the invention will be appreciated more fully from the following further description thereof with reference to the accompanying drawings wherein:

FIG. 1 schematically shows a simplified view of a sensor system in accordance with illustrative embodiments of the invention;

FIG. 2 schematically shows an event capturing system in accordance with illustrative embodiments of the invention;

FIG. 3 shows a process of capturing an event in a MEMS accelerometer according to embodiments of the present invention; and

FIG. 4 shows a process of detecting activity in a MEMS accelerometer according to embodiments of the present invention.

DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

Various embodiments of the present invention provide a system and method for capturing an event, such as a specific movement or gesture, in inertial sensor systems. This is accomplished with an event capturing system that detects a trigger event and then modifies the memory's configuration based on the trigger event so that a specified amount of acceleration data is saved or preserved in the memory. In some embodiments, the trigger event is detected with a detection module comprising digital logic and state machines coupled with the inertial sensor. The event capturing system, with its detection module, may be coupled with one or more sensors to effectively manage different conditions of the device without interaction with the device's central computer or microprocessor (excluding the sensor's interaction with the microprocessor during its initial configuration). For instance, the inertial sensor does receive some initial input from the microprocessor, such as initial configurations or settings, e.g., threshold values, which may be set manually by the user or automatically. Embedding the detection functionality with the event capturing system may more effectively automate power management since only the sensor and the event capturing system may need to be powered, rather than the device's microprocessor. For example, if the sensor is an accelerometer, the functionality may be embedded in the accelerometer circuitry. Details of illustrative embodiments are discussed below.

As shown in FIG. 1, various embodiments may include a sensor system 2 having one or more inertial sensors 4 that communicate with a central computer or microprocessor 6 through some interconnection medium 8. The sensor system 2 may also include one or more event capturing systems 10 in communication with the inertial sensor(s) 4. The inertial sensor(s) 4 may produce data values, e.g., motion data related to the detected movement of an object, which may be transmitted to the microprocessor 6 via interconnection 8 and/or the event capturing system 10 through the event capturing system's interface 12, as discussed in more detail below. Although FIG. 1 shows two inertial sensors 4 with one event capturing system 10, one sensor 4 may be used with one or more event capturing systems 10 and/or two or more inertial sensors 4 may be used with one or more event capturing systems 10.

FIG. 2 schematically shows a block diagram of an event capturing system 10 in accordance with illustrative embodiments of the invention. The event capturing system 10 may include an interface 12 for communicating with external devices, such as the inertial sensor(s) 4 (e.g., for receiving data produced by the sensors and sending data to the sensors) or the microprocessor 6, and a detection module 14 for processing the data values received and detecting whether certain types of events have occurred (e.g., a trigger event, such as an activity event, a tap/double tap event, a free fall event, etc.). The event capturing system 10 may also include memory 16 for storing or collecting the data values received from the external devices and the data values processed by the detection module 14. The event capturing system 10 may also include a management module 18 that may modify the memory's storage configuration when the event is detected by the detection module 14. The functionality of the event capturing system 10 is discussed in greater detail below with regard to embodiments of its implementation.

The management module 18 may also include other functionality, such as the capability to modify the sensor's configuration, coordinate the functionality of the detection module 14, and coordinate the functionality of the sensor(s) 4 and a sensor management system with the device's microprocessor 6. This additional functionality of the management module 18 is discussed in more detail in co-pending applications entitled ACTIVITY DETECTION IN MEMS ACCELEROMETERS, attorney docket number 2550/C35, and MANAGEMENT SYSTEM FOR MEMS INERTIAL SENSORS, attorney docket number 2550/C38, which are filed on the same day as the present application, and which are incorporated by reference herein in their entirety.

FIG. 3 shows a process of capturing an event in a MEMS accelerometer. The process begins at step 30, which establishes or sets a trigger event. For example, the trigger event may be a specified activity level or threshold (e.g., sensor movement greater than 1 g.), freefall motion, a tap, and/or a double tap. The trigger event may be set to one trigger event or one or more trigger events selected from a list of events. The trigger event(s) may be manually selected by the user or automatically set, such as a default trigger event. Alternatively, or in addition, the management module 18 may establish or modify the existing trigger event(s) depending on various detected states of the device.

In step 40, one or more inertial sensors 4 produce data values, which are then collected or stored in memory 16. The detection module 14, operatively coupled to the memory 16, may process the data values received and detect that a trigger event has occurred (step 50). For example, the trigger event may be activity, and the detection module 14 may detect that the MEMS device is active or moving, as described in more detail below with regard to FIG. 4.

Once a trigger event is detected by the detection module 14, the detection module 14 may inform the management module 18 that a trigger event has occurred. The management module 18 may then modify the configuration of the memory 16 in step 60. For example, the memory 16 may initially store or collect the data values received in a stream buffer mode or type of configuration. As well known to those skilled in the art, a stream buffer contains a specified amount of the most recent data received, depending on the size of the buffer's memory (e.g., a minute's worth of the most recent data). When storing data to a stream buffer that is full, the oldest data is written over or removed and replaced with the newest data received. In this way, the memory 16 may temporarily collect or store a limited amount of data, and then gradually throw it out if a trigger event is not detected and the data is thus unneeded.

When a trigger event is detected, the management module 18 may modify the memory's 16 configuration so that a certain amount of older data is not written over and may be preserved for later processing, e.g., a certain amount before and/or after the trigger event. For example, the management module 18 may instruct or switch the memory 16 from a stream buffer mode to a first-in-first-out (FIFO) buffer mode or type of configuration. As well known to those skilled in the art, a FIFO buffer does not allow newer data to be saved when the buffer is full, so older data is preserved. The amount of data saved from one configuration to another may be a fixed or a variable amount of data. The amount of data to be saved may be set automatically or manually and may be the same amount of data before and after the trigger event (e.g., 30 seconds before and after the trigger event) or different amounts of data before and after the trigger event (e.g., 25 seconds before and 50 seconds after the trigger event). The management module 18 may contain the instructions or information on the parameters and length of time to be saved. In some embodiments, this may be implemented by the management module 18 resetting a pointer in the FIFO buffer to a selected point in time before the trigger event and then setting a byte count to instruct the FIFO buffer to collect or save a certain amount of data.

For instance, the memory 16 may initially be collecting or saving one minute worth of data in a stream buffer mode. In this scenario, once a trigger event is detected, the memory 16 contains one minute of data before the trigger event. Continuing with this example, if forty seconds worth of data before and after the trigger event is desired, the management module 18 may modify the configuration of the memory 16 to a FIFO buffer mode, reset the FIFO pointer to forty seconds before the trigger event, and have the byte count set so that the FIFO collects forty seconds more worth of data after the trigger event. If a smaller or larger amount of data is desired, then the management module 18 may change the byte count so that more or less data is collected or stored. In this way, the management module 18 modifies the memory's storage configuration so that a specified amount of motion data is saved in memory 16. Once the data is captured in the memory 16, the data optionally may be processed or analyzed in step 70, e.g., by the microprocessor 6 or the detection module 14. The captured data may remain in memory 16 or some of the data, or even all, may be flushed or removed from the memory 16. The configuration of the memory 16 may be returned to a stream buffer mode where it may collect or store data until another trigger event is detected.

In addition to trigger events, other events may be detected by the detection module 14, which may occur before and/or after the trigger event and which may cause other events or processes to occur within the event capturing system 10 or the sensor system 2. For example, the detection module 14 may detect a data ready event, which signals that there is some data in the memory 16. After a trigger event, the detection module 14 may detect an overrun or watermark event in the memory 16, which may signal that the memory 16 is becoming full and newer data may be lost.

As mentioned above, one trigger event may be activity, and the detection module 14 may detect that the MEMS device is active or moving. FIG. 4 shows a process of detecting activity that may be performed by the event capture system's 10 detection module 14 according to illustrative embodiments of the present invention. Thus, in some embodiments, the detection module 14 may include a computational component and a comparator (not shown) as discussed further below. The process begins at step 80, which decides whether to start looking for activity. The detection module 14 may start to look for activity automatically at designated times, (e.g., when the device is turned on or at periodic intervals) or manually, (e.g., when the user actively initiates a request such as tapping on a device screen). Alternatively, or in addition, the management module 18 may instruct the detection module 14 to start to look for activity once inactivity is detected (inactivity detection is discussed in greater detail in co-pending applications entitled ACTIVITY DETECTION IN MEMS ACCELEROMETERS, attorney docket number 2550/C35, and MANAGEMENT SYSTEM FOR MEMS INERTIAL SENSORS, attorney docket number 2550/C38, which are filed on the same day as the present application, and which are incorporated by reference herein in their entirety).

In step 90, an acceleration offset or bias may be captured upon the start of looking for activity. This may be accomplished by having the detection module 14 capture a snap-shot of the current acceleration or orientation of the device and digitally store the value as the acceleration bias in memory 16.

In step 100, the acceleration of the device may be measured by the sensor(s) 4 and the data values stored in memory 16. The acceleration may be measured on one or more axes of the device (e.g., x-, y-, and/or z-axis), which may be determined automatically or manually (e.g., set by the user). The accelerometer may sample the acceleration data at a data rate. The management module 18 may determine the sensor's 4 data rate depending on the current detected state of the device by the detection module 14. For example, the accelerometer sample rate may be set to a desired “awake” mode or more frequent sampling rate when activity is detected or monitored by the detection module 14. Similarly, the accelerometer sample rate may be set to a desired “sleep” mode or more infrequent sampling rate when inactivity is detected/monitored. When the detection module 14 has yet to determine activity and/or inactivity, the management module 18 may set a default value for the sensor's 4 sample rate, e.g., sleep mode sampling rate, awake mode sampling rate, or some other sampling rate, until the detection module 14 determines the current detected state of the device. Although one mode is discussed for when activity or inactivity is detected/monitored, the management module 18 may set two or more different modes during a given state of the device.

In step 110, the detection module 14 calculates the change in acceleration and verifies whether that change is greater than or equal to a threshold. The detection module 14 may determine the change in acceleration by calculating the difference between the current measured acceleration and the digitally stored acceleration bias using the computational component. The detection module 14 may then compare an absolute value of the change in acceleration to a threshold value using the comparator. The detection module 14 performs these calculations and the measured acceleration values, the calculated difference and the threshold value may be stored in the memory 16. The threshold may be set automatically or manually and may be the same or different for different axes. If the change in acceleration is less than the threshold, then the process returns to step 100 where the acceleration may be measured again. If the change in acceleration is greater than or equal to the threshold, then the process proceeds to step 120, where activity is detected.

When activity is detected by the detection module 14, it may inform the management module 18 of the current detected state of the device. The management module 18 may then modify the memory's 16 configuration so that it saves a selected amount of data, e.g., a certain amount before and/or after the trigger event, as discussed above. In addition, or alternatively, the management module 18 may send instructions or parameters to the inertial sensor(s) 4 via the interface 12 as discussed above (e.g., setting sampling rates), and may send instructions back to the detection module 14, e.g., start to look for inactivity. Thus, the detection module 14 may optionally start to look for inactivity once activity is detected.

Although FIG. 4 discusses detecting activity, other embodiments may use other techniques for detecting activity trigger events. In addition, other embodiments may use other techniques for detecting a trigger event, and the trigger event may include other events than activity as discussed above. For example, the trigger event may be free fall detection, tap/double tap detection, event ready detection, watermark detection, etc. Thus, discussion of detecting a specific trigger event is exemplary and not intended to limit the scope of various embodiments of the invention. In addition, the management module 18 may set parameters in the detection module 14 and/or the sensor(s) 4 along with, or instead of, the memory 16.

Although inertial sensors 4 such as accelerometers are discussed above, principles of illustrative embodiments may apply to other inertial sensors or sensor devices, such as MEMS gyroscopes and MEMS pressure sensors or microphones. Accordingly, discussion of inertial sensors is exemplary and not intended to limit the scope of various embodiments of the invention.

Among other implementations, the detection module 14 and/or the management module 18 may be a single integrated unit having the discussed functionality, and/or a plurality of interconnected, separate functional devices. Reference to a “module” therefore is for convenience and not intended to limit its implementation. Moreover, the various functionalities within the detection module 14 and/or the management module 18 may be implemented in any number of ways, such as by means of one or more application specific integrated circuits or digital signal processors, or the discussed functionality may be implemented in software.

In some embodiments of the present invention, certain motion detection (e.g., activity/inactivity detection) may be determined independently of one another and/or concurrently. In some embodiments, certain motion detection (e.g., activity detection) may be dependent upon detecting other types of motion (e.g., detecting inactivity) and vise-versa.

Various embodiments may provide efficient management of a MEMS accelerometer by allowing the trigger event detection to be performed by the event capturing system 10, which is coupled to the inertial sensor(s) 4, without interaction with the device's microprocessor 6. In this way, the event capturing system 10 coordinates the inertial sensor's functions and responds to specific types of detected movement. By embedding the functionality in the event capturing system 10, benefits may be realized, such as achieving maximal power savings since only the sensor 4 and event capturing system 10 may need to be powered, rather than the device's microprocessor 6.

All or part of the functionality of the event capturing system 10 may be implemented in event capturing circuitry, which may be implemented as part of the sensor-specific circuitry. For example, if the sensor is an accelerometer, then all or part of event capturing circuitry may be integrated with the accelerometer or sensor circuitry. For instance, the event capturing circuitry may include the activity detection function, which may be embedded in the accelerometer for power control of the end device. The event capturing circuitry may detect an acceleration above a particular threshold or a change in orientation and transmit such motion data to other circuitry for further processing. Sensor-specific circuitry that includes the event capturing circuitry may be on the same chip or die as the sensor itself, or on a different chip or die. As another example, the sensor-specific circuitry with the event capturing circuitry may be implemented on an application specific integrated circuit (ASIC), while the sensor may be on a sensor chip with no circuitry (other than pads for wirebonding with the ASIC). Both the ASIC and sensor chip may be within a single package, or in separate packages.

Embodiments may be implemented as a computer program product for use with a computer system. Such implementation may include a series of computer instructions fixed either on a tangible medium, such as a computer readable medium (e.g., a diskette, CD-ROM, ROM, or fixed disk) or transmittable to a computer system, via a modem or other interface device, such as a communications adapter connected to a network over a medium. The medium may be either a tangible medium (e.g., optical or analog communications lines) or a medium implemented with wireless techniques (e.g., microwave, infrared or other transmission techniques). The series of computer instructions may embody all or part of the functionality previously described herein with respect to the method and system. Those skilled in the art should appreciate that such computer instructions may be written in a number of programming languages for use with many computer architectures or operating systems. For example, embodiments may be implemented in a procedural programming language (e.g., “C”) or an object oriented programming language (e.g., “C++”). Alternative embodiments of the invention may be implemented as pre-programmed hardware elements, other related components, or as a combination of hardware and software components.

Furthermore, such instructions may be stored in any memory device, such as semiconductor, magnetic, optical or other memory devices, and may be transmitted using any communications technology, such as optical, infrared, microwave, or other transmission technologies. It is expected that such a computer program product may be distributed as a removable medium with accompanying printed or electronic documentation (e.g., shrink wrapped software), preloaded with a computer system (e.g., on system ROM or fixed disk), or distributed from a server or electronic bulletin board over the network (e.g., the Internet or World Wide Web). Thus, some embodiments of the invention may be implemented as hardware, software (e.g., a computer program product), or a combination of both software and hardware.

Although the above discussion discloses various exemplary embodiments of the invention, it should be apparent that those skilled in the art can make various modifications that will achieve some of the advantages of the invention without departing from the true scope of the invention. 

1. A method of capturing an event in a MEMS accelerometer, the method comprising: storing acceleration data in memory; detecting a trigger event based on the acceleration data; and modifying a configuration of the memory so that a specified amount of the acceleration data is saved.
 2. The method of claim 1, wherein the specified amount of the acceleration data includes acceleration data stored before the detected trigger event.
 3. The method of claim 1, further comprising: processing the specified amount of the acceleration data in order to recognize the event.
 4. The method of claim 3, wherein the event is a gesture.
 5. The method of claim 1, wherein modifying a configuration of the memory includes varying an amount of the acceleration data stored.
 6. The method of claim 1, wherein modifying a configuration of the memory includes modifying the configuration from a stream buffer to a first-in-first-out buffer.
 7. The method of claim 1, wherein detecting a trigger event further comprises: capturing an acceleration bias; measuring acceleration at a predetermined period of time; calculating a change in acceleration using the measured acceleration and the acceleration bias; and comparing the change in acceleration to a threshold to detect the trigger event.
 8. A MEMS event capturing system comprising: an inertial sensor having sensor circuitry; and event capturing circuitry implemented with the sensor circuitry, the event capturing circuitry including: memory capable of storing acceleration data received from the inertial sensor; a detection module operatively coupled with the memory that detects a trigger event; and a management module operatively coupled with the memory and the detection module that modifies the memory's storage configuration when the trigger event is detected.
 9. The MEMS system of claim 8, wherein the memory's storage configuration is modified from a stream buffer to a first-in-first-out buffer.
 10. The MEMS system of claim 8, further comprising a microprocessor operatively coupled with the event capturing circuitry, the microprocessor capable of processing the acceleration data in order to recognize an event.
 11. The MEMS system of claim 10, wherein the event is a gesture.
 12. The MEMS system of claim 8, wherein the inertial sensor is formed on a die, and the sensor circuitry and event capturing circuitry are formed on or in the die.
 13. The MEMS system of claim 8, wherein the sensor circuitry and event capturing circuitry are formed on or in a first die, and the inertial sensor is formed on or in a second die that is in communication with the first die.
 14. The MEMS system of claim 8, wherein the inertial sensor includes an accelerometer or a gyroscope.
 15. The MEMS system of claim 8, wherein the memory is capable of storing a fixed or a variable amount of acceleration data received from the inertial sensor.
 16. A computer program product for capturing an event in a MEMS accelerometer, the computer program product comprising a computer usable medium having computer readable program code thereon, the computer readable program code comprising: program code for storing acceleration data in memory; program code for detecting a trigger event based on the acceleration data; and program code for modifying a configuration of the memory so that a specified amount of the acceleration data is saved.
 17. The computer program product of claim 16, wherein the specified amount of the acceleration data includes acceleration data stored before the detected trigger event.
 18. The computer program product of claim 16, wherein the computer readable program code further comprises: program code for processing the specified amount of the acceleration data in order to recognize the event.
 19. The computer program product of claim 16, wherein the computer readable program code for modifying a configuration of the memory includes program code for varying an amount of the acceleration data stored.
 20. The computer program product of claim 16, wherein the computer readable program code for modifying a configuration of the memory includes program code for modifying the configuration from a stream buffer to a first-in-first-out buffer. 